﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using IBatisNet.DataMapper;
using TumbaloSoft.Models;

namespace TumbaloSoft.Helpers
{
    public class HelperDepartamento
    {
        public static int insert(TumbaloSoft.Models.Departamento dept)
        {
            Mapper.Instance().Insert("DepartamentoInsert", dept);
            return 0;
        }
        public static void update(TumbaloSoft.Models.Departamento dept)
        {
            Mapper.Instance().Update("DepartamentoUpdate", dept);
        }
        public static void delete(TumbaloSoft.Models.Departamento dept)
        {
            Mapper.Instance().Update("DepartamentoDelete", dept);
        }
        public static Departamento selectById(int id)
        {
            IList depas = Mapper.Instance().QueryForList("DepartamentoSelectById", id);
            if (depas.Count == 0) return null;
            Departamento depa = (Departamento)(depas[0]);
            depa.prEdificio = HelperEdificio.selectById(depa.prEdificio.prIdEdificio);
            return depa;
        }
        public static List<Departamento> selectByIdEdificio(int id)
        {
            List<Departamento> depas = new List<Departamento>(Mapper.Instance().QueryForList<Departamento>("DepartamentoSelectByIdEdificio", id));
            return depas;
        }
        
        public static Departamento selectByNumeroDepartamentoEnEdificio(Departamento dep)
        {
            Departamento depa = Mapper.Instance().QueryForObject<Departamento>("DepartamentoSelectByNumeroDepa", dep);
            depa.prEdificio = HelperEdificio.selectById(dep.prEdificio.prIdEdificio);
            return depa;
        }
        public static bool verificaNumeroDepa(Departamento dep)
        {
            if (Mapper.Instance().QueryForObject<Int32>("DepartamentoSelectVerificaNumeroDepa", dep) == 0) 
                return false;
            else return true;
        }

        public static int selectCountByIdEdificio(int id)
        {
            return (int)Mapper.Instance().QueryForObject("DepartamentoSelectCountByIdEdificio", id);
        }

        public static IList selectByIdPropietario(int id)
        {
            IList depas = Mapper.Instance().QueryForList("DepartamentoSelectByIdPropietario", id);
            return depas;
        }
    }
}